package set_;
import java.util.HashSet;

/**
 * @Author 小闽
 * @Date 2024/11/1 10:45
 * @PackageName: set_
 * @ClassName: HashSet01
 * @Description: HashSet01
 * @Version 1.0
 */
@SuppressWarnings({"all"})
public class HashSet01 {
    public static void main(String[] args) {
        HashSet set = new HashSet();
        // 1. Set接口的实现类中的add方法返回的类型是boolean
        // 2. 可以通过remove方法指定删除那个元素
        System.out.println(set.add("john")); //T
        System.out.println(set.add("lucy")); //T
        System.out.println(set.add("john")); //F
        System.out.println(set.add("jack")); //T
        System.out.println(set.add("Rose")); //T
        set.remove("john");
        System.out.println("set=" + set);

        set = new HashSet();
        set.add("lucy");//ok
        set.add("lucy");//失败
        set.add(new Dog01("tom")); //ok
        set.add(new Dog01("tom")); //ok
        System.out.println("set=" + set);

        // 加深一下，非常经典的面试题
        // 这里需要去读取源码，看下底层原理
        set.add(new String("苏宁易购"));//ok
        set.add(new String("苏宁易购"));//？添加失败
    }
}
class Dog01{
    public String name;

    public Dog01(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Dog01{" +
                "name='" + name + '\'' +
                '}';
    }
}
